Copyright: Copyright © 2002 Borland Software Corporation.                      All rights reserved.                                                 This Help file was compiled on   Monday, June 24, 2002 13:33:22.


XML Mapper

The XML Mapper is a design-time tool that lets you define the mappings between generic XML documents and the data packets that client datasets use. Each mapping describes the correspondences between the nodes of an XML document and the fields in a data packet.

You can define mappings from an existing XML schema (or document) to a client dataset that you define, from an existing data packet to a new XML schema you define, or between an existing XML schema and an existing data packet.

Once you have defined a mapping, you can use it to create a transformation file for the mapping. Transformation files represent a single direction in the mapping. There are separate transformation files for converting

An XML document into a data packet.

An XML document into a delta packet that inserts records corresponding to the elements in the XML document.

An XML document into a delta packet that deletes records corresponding to the elements in the XML document.

An XML document into a data packet that represents the values of a set of input parameters.

A data packet into an XML document.

The transformation files created using XML mapper are used by the TXMLTransform, TXMLTransformProvider, and TXMLTransformClient components to perform the specified conversions.

XML mapper is divided into three panes:

On the left is the XML document pane. This displays information about the structure of the XML document.

On the right is the Datapacket pane. This displays information about the metadata in the data packet.

In the center is the mapping pane. This contains tabbed pages where you supply details for the mapping you want to create.


XML document pane

The XML document pane displays information about the XML document. This pane has two tabbed pages, which provide different views of the structure of the XML document.

Document View

The Document View page shows the contents of the currently loaded XML document, represented as a hierarchical tree view. Each node in the tree represents a tag or tag attribute in the XML document. Next to each node is an icon that indicates the type of tag it represents:

An <E> indicates an element node. An element node represents a tag that acts as a parent to other nodes (tags), but does not have a value. The name of the node is the tag name. Typically, E nodes map to datasets (the data packet itself or a nested detail set), although they can also map to fields whose values are a composite of the child node values.

A document with a yellow T indicates a text node. Text nodes represent tagged elements with text values. In the tree, they have the form Nodename="TextValue", where Nodename is the tag name and TextValue is the text that appears between the starting tag and the ending tag. Typically, T nodes map to fields in the corresponding data packet.

An document with a red A indicates an attribute node. Attribute nodes correspond to attributes of the parent element’s tag in the XML document. In the tree, attributes have the form Nodename="AttributeValue", where Nodename is the name of the attribute and AttributeValue is its value. Typically, A nodes map to fields in the corresponding data packet, where the element for which they are attributes maps to a record.

A document outlined in yellow indicates a nested node. Nested nodes are element nodes that can appear replicated sequentially in the XML document. Typically, nested nodes map to records in the corresponding data packet.

Data View check box

At the bottom of the Document View page is a check box labeled Data View. When Data View is not checked, the hierarchy displays only the names and types of nodes. No values are shown for text or attribute nodes, and only a single instance is shown for any nested nodes. When you check Data View, the hierarchy changes show sample values on text and attribute nodes, and repetitions of nested nodes. If you loaded a sample XML file, the Data View shows the values stored in that file. If the document was generated from a schema or data packet, sample values are generated for the nodes.

If you are examining a large XML document, it is sometimes easier to use uncheck Data View, so that you can see more of the logical structure with the detailed information removed.

Schema View

The schema view shows the XML schema information. This page has three tabs, which represent the different schema formats supported by XML mapper. These include DTD, XDR (reduced XMLData), and XSD (XML schema). The information on the Schema View page can be read from a file or deduced from an actual XML document.

Loading XML information into the XML document pane

The information displayed in the XML document pane can come from several different sources:

You can open an XML document file and view it in the XML document pane. To load an XML document file,

Choose File|Open. In the resulting dialog, set the file type to Document files, and select an XML document.

Click the Open button on the tool bar. In the resulting dialog, set the file type to Document files, and select an XML document.

Right-click in the sample page and choose Open XML Document.

When you load an XML document, the hierarchy page shows the contents of the document (with text or attribute values and repeated tags removed if Data View is unchecked). The values on the schema page are deduced from the document.

You can open an XML schema file and view the structure it describes in the XML document pane. To load an XML schema file,

Choose File|Open. In the resulting dialog, set the file type to Schema files, and select a .dtd, .xdr, or .xsd file.

Click the Open button on the tool bar. In the resulting dialog, set the file type to Schema files, and select a .dtd, .xdr, or .xsd file.

At the top of the Schema View page, select that tab that corresponds to the type of schema you want to load. On that page, right click and choose Open Schema.

When you open a schema, it is displayed in the schema page. The Document View page represents this structure as an empty document.

You can create the XML structure from a data packet. To do this, you must

1. Load a data packet into the Datapacket pane.

2. Select the fields you want to have appear in the XML document into the mapping pane.

3. Choose Create|XML from Datapacket.

This process is described in more detail in Creating a data packet to XML document transformation.


Datapacket pane

The Datapacket pane displays information about a data packet (client dataset). This pane has two tabbed pages, each of which displays the contents of the data packet in a hierarchical tree view similar to the tree view that displays an XML document on the XML document pane.

Field View

Use the Field View page to examine the field attributes for all the fields in the data packet. Each node in the hierarchy represents a dataset, field, or field attribute. Next to each node is an icon that indicates what it represents:

An dataset outlined in yellow represents the entire data packet or a dataset field. The children of a dataset node represent the fields in that dataset.

An dataset with the middle column filled in represents a field that is not a dataset field. The children of a field node represent the attributes of the field.

A green diamond represents a field attribute, such as the data type, maximum length, and so on. The node is labeled with a string of the form ‘AttributeName = Value’, where AttributeName is the name of the field attribute and Value is its value.

Datapacket View

Use the Datapacket page to examine the structure of the data packet. The icons in this view are the same as those in the XML document pane, because data packets can be treated as special types of XML documents.

Note:	XML mapper can use a data packet in binary format (a .cds file) as well as data packets that have been saved as XML. If you use a data packet in binary format, XML mapper converts it to XML format.

Next to each node is an icon that indicates the type of tag it represents:

An <E> indicates an element node. Element nodes in data packets represent datasets or dataset fields.

An document with a red A indicates an attribute node. Attribute nodes in data packets represent fields (unless they are dataset fields).

A document outlined in yellow indicates a nested node. Nested nodes in data packets represent records.

Loading data packet information into the Datapacket pane

The information displayed in the Datapacket pane can come from one of several sources:

You can open a data packet to view it in the Datapacket pane. To load a data packet file,

Choose File|Open. In the resulting dialog, set the file type to Datapacket files and select a data packet.

Click the Open button in the tool bar. In the resulting dialog, set the file type to Datapacket files and select a data packet.

Right-click in the Datapacket pane and choose Open Datapacket.

Data packet files can be in either XML or binary format, having either the .xml or .cds extension, respectively.

You can create the data packet from an XML document. To do this, you must

1. Load an XML document or schema into the XML document pane.

2. Select the nodes you want to have appear in the data packet into the mapping pane.

3. Choose Create|Datapacket from XML.

This process is described in more detail in Creating an XML document to data packet transformation.

In Delphi only, you can connect to an application server and fetch data from a provider. To connect to an application server, right click in the Datapacket pane and choose Connect to Remote Server. In the dialog that appears,

1. Select a registered application server from the drop-down list labeled Remote Server name or type in the name of the server you want.

2. Click the Connect button to establish a connection to the server.

3. Once the connection is made, choose a provider on the server from the drop-down list labeled Provider Name.

4. Click the Get Datapacket button to fetch the data, or the Get Params button to fetch a table listing the parameter values.


Connect to Remote Server
IC_D32.bmp Connect to Remote Server

The Connect to Remote Server dialog appears in Delphi only when you right click in the Datapacket pane and choose Connect to Remote Server from the popup menu. This dialog lets you fetch a datapacket from an application server and load it into the Datapacket pane.

Remote Server Name

Specify the name of the application server that supplies the data packet you want to load. A drop-down list lets you select any application server that is registered on your system. In addition, you can type in the name of an application server.

Connect

After you have specified an application server using the Remote Server Name combo box, click the Connect button to establish a connection to the server.

Provider Name

After you have established a connection to the application server using the Connect button, you can select a provider on that server from the drop-down list.

Get Params

Click the Get Params button to fetch a data packet that lists parameter values for the provider on the application server. The dialog exits, loading a data packet containing the current parameters into the Datapacket pane.

Get Datapacket

Click the Get Datapacket button to fetch a data packet that contains data from the provider’s dataset. The dialog exits, loading this data packet into the Datapacket pane.


Mapping pane

The Mapping pane is used to specify the correspondences between the XML document in the XML document pane and the data packet in the Datapacket pane. Once the correspondences have been completely specified, you can use the mapping pane to generate and save a transformation file.

The Mapping pane has two tabbed pages:

The Mapping page lets you specify the mapping between fields in the data packet and nodes in the XML document, create a transformation file, and save the transformation file.

The Node properties page lets you assign properties to the currently selected node in the XML document pane. These properties are used when generating a transformation file to ensure that data packets generated from XML documents have the correct field types and constraints, and that XML documents generated from data packets have the correct nodes. You can also use the Node repository to indicate when the transformation between an XML node and a data packet field should be handled by an event handler rather than occurring automatically.


Node Properties page

The Node Properties page lets you assign properties to the currently selected node in the XML document pane. These properties are used when generating a transformation file to ensure that data packets generated from XML documents have the correct field types and constraints, and that XML documents generated from data packets have the correct nodes. When you generate a transformation file, it reflects the values currently specified on the Node Properties page.

By default, the node properties page lists values that can be deduced from the current XML document. However, you may want to update this information to ensure a correct translation. For example, when you load an XML document into the XML document pane, all text and attribute nodes are assumed to represent string values (map to string fields) where the maximum string length is inferred from the maximum value in the XML document.

You may want to increase the field length so that future transformations do not truncate strings, or change the data type if the node always represents another data type (such as a date or float value). If you load an XML schema that provides some of this information, XML mapper initializes the values in the node properties page to reflect the restrictions in the schema file.

You can store the current settings for future use in a node repository file. This is useful when a common base set of element declarations (schemas) are used to define multiple XML documents.

To save the current node settings to a node repository file, right-click and choose Save Repository. To read a set of node settings from a node repository file, right-click and choose Open Repository, or choose File|Open from the main menu, and set the file type to Repository files (*.xrp). To back out all changes made using the Node Properties page, reverting to the values deduced from the XML document, right-click and choose Clear.

Node Properties page controls

Property Table

In the top half of the Node Properties page, a table appears where you can assign attributes that are appropriate to the selected node. You can edit the Values column to assign a value to any of these attributes. The following table lists the possible attributes and their meanings:

Node Name	Specifies the name of the current node in the XML document. This is the Tag name of an element or text node.
Attribute Name	Specifies the name of an attribute node.
Mapped Name	Specifies the name of the field in the XML data packet that corresponds to the current node.
Nested	Indicates whether the currently selected node can be repeated in the XML document. Nested nodes map to records in a data packet. Nested is only available for element nodes and nested nodes.
Data Type	Specifies the data type of the field that corresponds to the XML node. This is useful when defining the metadata for a generated data packet or to specify formatting information to map between XML values and field values. Allowable data types are listed in the drop-down list for this attribute. Note that for some data types, you must specify additional attributes to further describe the data type. For example, if Data Type is String, you must also specify Max Length to indicate the size of the corresponding string field. Data Type is only available for nodes that correspond to simple field values or array fields.
Data Format	When Data Type is Date, DateTime, or Time, use Data Format to specify the format string for encoding date/time values into strings. When Data Type is String, Memo, or WideString, use Data Format to specify how characters are encoded. When Data Type is Binary, use Data Format to specify the number of bits in a value. You can choose the format from the drop-down list.
Max Length	When Data Type is String, use Max Length to specify the maximum length of the string. This becomes the size of the corresponding string field.
Precision	When Data Type is BCD (binary-coded decimal), use Precision to specify the maximum number of digits that can be represented.
Scale	When Data Type is BCD (binary-coded decimal), use Scale to specify the number of places that can appear past the decimal point.
Min Occurs	When the node corresponds to an array field, Min Occurs represents the minimum number of elements that the array field must contain. Each element of the array has the data type specified by Data Type.
Max Occurs	When the node corresponds to an array field, Max Occurs represents the maximum number of elements in the array. Each element of the array has the data type specified by Data Type.
Value Required	Indicates whether the selected node requires a value. When generating transformations from XML documents to data packets, the corresponding field in the data packet is a required field (can’t be blank). When generating transformations from data packets to XML documents, Value Required specifies that nodes must be created even if the data packet contains a blank value.
Default Value	Provides a default value for the corresponding field. The default value is automatically assigned when the field (or node) is blank.
Sample Value	Provides a value that is used when generating sample XML documents if no other value is available.
Enumeration	If the node can only take one of a limited number of values, use Enumeration to specify the allowable values. Enter values using the format  NodeValue1=FieldValue1 NodeValue2=FieldValue2 ... Each NodeValue string is a value that can appear in the XML document; each FieldValue string is a value that can appear as the value of a field in the data packet. Value pairs are separated by spaces. For example, a node that maps to a boolean field might have the Enumeration Yes=True No=False
Constant Value	If the node always has the same value, specify that value as Constant Value. Transformations from data packets to XML documents then insert this node into the XML document, even though it does not appear as a field in the XML data packet.
In Primary Key	The node corresponds to a field in the primary key of the data packet. Nodes that correspond to fields in the primary key must appear in order, starting with the first mapped node. If the first mapped node has In Primary Key set to false, the data packet does not have a primary key.
UTF-8 encoded: This checkbox controls whether extended characters are encoded using UTF-8 (when checked) or using an escape sequence in the XML (when unchecked). When checked, the Data Format property for Strings, Memos, and WideStrings changes from Ansi to UTF-8.

User Defined Translation: This checkbox controls whether the selected node should be transformed automatically. This allows you to perform conversions that are not simple 1:1 mappings that can be specified by giving a data type. For example, you can create a user-defined node to convert an element node that has children for first name and last name into a single "full name" field in the data packet. When you check the User defined check box, you must assign an ID string to represent the node. This ID string is passed to the OnTranslate event handler of TXMLTransform so that you can perform the translation in code. If you do not identify a node as user-defined, the OnTranslate event does not occur for the node.

Node Description: At the bottom of the Node Properties page is an edit control where you can enter a description of the node. This description is not added to the XML document or the data packet, but is useful for identifying the purpose of a base set element when you are saving property sets to a node repository file


Mapping page

The Mapping page lets you specify the mapping between fields in the data packet and nodes in the XML document, create a transformation file, and save the transformation file.

The top of the page displays a two-column table that lists the nodes from the XML document and the corresponding fields in the data packet. When you first display the mapping page, this table is empty. In order to define a mapping, you must fill this table.

To add nodes from the XML document, double-click on the nodes in the XML document pane (Document View page) that should be mapped to field in the data packet. Every time you double-click on a node, it is added to the next empty row on the Selected Nodes side of the table. You can also add the current node by right-clicking and choosing Select. You can add all of the nodes in the XML document by right-clicking in the XML document and choosing Select All. You can add all subnodes of the current node in the XML document pane by right-clicking and choosing Select All Children.

Note:	You can only add nodes with values (text and attribute nodes), or nodes that have been marked as user-defined using the Node repository page.

To add fields from the data packet, double-click on the nodes in the Datapacket pane that should be mapped to field in the data packet. Every time you double-click on a node, it is added to the next empty row on the Selected Fields side of the table. You can also add the current field by right-clicking and choosing Select. You can add all of the fields in the data packet by right-clicking in the Datapacket pane and choosing Select All. You can add all subnodes of the current node (in the Datapacket view) by right-clicking and choosing Select All Children.

Note:	You can only add nodes that represent fields (attribute nodes).

To generate fields for a new data packet from the current nodes on the Selected Nodes side of the table, choose Create|Datapacket from XML. The newly created fields appear in the Selected Fields column and the data packet structure appears in the Datapacket pane. Be sure to specify the field attributes you want using the Node repository page before you create the data packet.

To generate nodes for a new XML document from the current fields on the Selected Fields side of the table, choose Create|XML from Datapacket. The Create XML from client dataset dialog appears, where you can specify the nodes you want to create in the XML document for every selected field. When you exit the dialog, the newly created XML document structure appears in the XML document pane.

To delete entries from the table, select the entry and click the delete button that appears below the table. You can also back out the most recent change to the table by clicking the Undo button.

To delete all entries from the table, right-click in the table and choose Clear.

To rearrange the entries in the table, select the cell corresponding to the field or node you want to move, right-click, and choose Move Up or Move Down.

Each node or field appears as a fully-qualified path describing its position in the XML or data packet tree view. If the node name or field name is preceded by an @ symbol, it represents an attribute of the parent tag in the XML document rather than a text value.

To create and save a transformation file,

1.	Select the radio button that indicates the direction of the transformation.

Select XML to Datapacket if you want a transformation for converting from XML document to data packet.

Select Datapacket to XML if you want a transformation for converting from data packet to XML document.

2. If you selected XML to Datapacket in step 1, click the radio button that corresponds to the type of data packet you want to create:

Select Client Dataset if you want to create the data for a client dataset. A client dataset transformation can be used by TXMLTransform to create a file for a client dataset or by TXMLTransformProvider to provide data from an XML document.

Select Insert Delta if you want to create an update delta packet for adding the records from the XML document into a dataset. A delta packet transformation can be used by TXMLTransformClient to apply updates.

Select Delete Delta if you want to delete the records from the XML document from a dataset. A delta packet transformation can be used by TXMLTransformClient to apply updates.

Select Query Parameters if you want to create a set of parameter values. A set of parameter values can be used by TXMLTransformClient to set input parameters.

3.	Click the Create and Test Transformation button to generate the transformation.  A dialog appears showing the transformation of the sample in the XML document or Datapacket pane.

4. Choose File|Save|Transformation to save the transformation.


Create XML from Client dataset dialog

The Create XML from Client dataset dialog appears when you right-click in the Datapacket pane and choose Create XML from datapacket, or when you choose Create|XML from datapacket from the main menu. This dialog lets you specify the nodes that should be created in the XML document for every field selected in the mapping pane.

Root Name

Use the Root Name edit control to specify the name of the root node of the XML document.

Mapping table

The mapping table contains two columns: The first column lists the names of all the selected fields, plus names for dataset fields and records that contain selected fields. The second column lists the proposed names for the corresponding nodes in the generated XML document.

You can edit the proposed names for the nodes of the XML document. Note that preceding a name with the ‘@’ symbol indicates that the value should appear as an attribute node, while omitting the initial ‘@’ causes the value to appear as a text node or element node.

To globally change whether values appear as element or attribute nodes, right click in the mapping table and choose As Tags or As Attributes.

{bmvc bullet.bmp}	To restore the node names to the originally proposed values, right click in the mapping table and choose Reset Names.

Click the Create button to generate the XML node definitions. The newly created nodes appear in the Selected Nodes column of the table and the XML document structure appears in the XML document pane.


Test transformation (XML -> client dataset)

This Test transformation window appears when you click the Create and Test Transformation button after specifying a transformation that converts an XML document into a data packet. It displays the contents of the data packet, laid out in a tabular format.

To test the transformation on another sample,

Right-click and choose Open Document or click the Open button in the tool bar.

To save the client dataset that you are viewing,

Right-click and choose Save Datapacket or click the Save button in the tool bar. Note this is the data packet you are saving, not the transformation.

To recreate the transformation based on the current sample,

Right-click and choose Test transformation, or click the Test transformation button in the tool bar.

To exit the dialog

Right-click and choose Close, or click the Close button in the tool bar.


Test transformation (client dataset -> XML)

This Test transformation window appears when you click the Create and Test Transformation button after specifying a transformation that converts a client dataset into an XML document. It displays the contents of the XML document in a hierarchical tree view such as the one that appears in the Document View page of the Document pane when you check the Data View check box.

To test the transformation on another data packet,

Right-click and choose Open XML Datapacket or click the Open button in the tool bar.

To save the XML document that you are viewing,

Right-click and choose Save XML Document or click the Save button in the tool bar. Note this is the XML document you are saving, not the transformation.

To recreate the transformation based on the current sample,

Right-click and choose Test transformation, or click the Test transformation button in the tool bar.

To exit the dialog

Right-click and choose Close, or click the Close button in the tool bar.


Creating a transformation file

To use XML Mapper to generate a transformation file involves the following basic steps:

1.	Define a mapping between a data packet and an XML document structure. You can define mappings from an existing XML schema (or document) to a client dataset that you define, from an existing data packet to a new XML schema you define, or between an existing XML schema and an existing data packet.

2.	Create and test a transformation.

3.	Save the transformation to a file.

Typically, transformation files are generated in pairs: one to transform an XML document into a data packet, and another to reverse that transformation, transforming the same data packet structure into the same XML document structure.

Creating an XML document to data packet transformation

To generate a transformation file that converts an existing XML document to a data packet,

1. Choose File|Open and use the resulting dialog to load the XML document or schema into the XML document pane.

2. Select the Document View tab in the XML Document pane.

3. In the central pane, select the tab for the Node repository page.

Indicate which nodes, if any, must be transformed in an event handler, by checking the User defined check box and supplying an identifying string.

Specify the data type for each node that will map to a field in the data packet. For string fields, you must also supply a maximum length. For BCD fields, you must supply values for Precision and Decimals. For array fields, supply values for Min Occurs and Max Occurs.

For any nodes that correspond to records, be sure that the Nested attribute is True.

Optionally, provide a mapping between the values that appear in the XML document and the values that appear in the XML data packet using the Enumeration attribute.

Specify any other field attributes, such as required fields, default values, and fields that make up the primary key.

4. In the central pane, select the tab for the Mapping page. Add all nodes in the XML document pane that should appear in the data packet to the Selected Nodes column of the mapping table. You can add nodes by double clicking in the XML document pane or right-clicking and choosing Select (or Select All or Select All Children).

5. Create the metadata for the data packet by choosing Create|Datapacket from XML.

6. In the central pane (Mapping page), select the XML to Datapacket radio button.

7. Select the type of data packet you want to create.  Choose ClientDataset to generate a data packet that represents a client dataset, Insert Delta to generate a delta packet for adding the data in the XML document to an existing dataset, Delete Delta to generate a delta packet for deleting the data in the XML document from an existing dataset, or Query Parameters to generate a packet that contains input parameter values.

8. Click Create and Test Transformation to generate the transformation.

9. Choose File|Save|Transformation to save the transformation file.

Creating a Data packet to XML document transformation

To generate a transformation file that transforms an existing data packet into an XML document,

1. Choose File|Open and select a data packet file (saved client dataset) into the Datapacket pane. Alternately, you can fetch the data packet from a provider by right-clicking in the Datapacket pane and choosing Connect to Remote Server.

2. In the central pane, select the tab for the Mapping page. Add all fields in the Datapacket pane that should appear in the XML document to the Selected Fields column of the mapping table. You can add individual nodes by double clicking in the Datapacket pane or add all nodes by right-clicking and choosing Select All.

3. Create the structure for the XML document by choosing Create|XML from Datapacket.

A dialog appears where you can specify the names of the nodes in the XML document that correspond to fields in the Selected Fields column:

1	Specify the name of the root node of the XML document using the Root Name edit control.

2	Edit the proposed names for the nodes of the XML document. Note that preceding a name with the @ symbol indicates that the value should appear as an attribute node, while omitting the initial @ causes the value to appear as a text node or element node.

3	Click the Create button to generate the XML node definitions. The newly created nodes appear in the Selected Nodes column of the table and the XML document structure appears in the XML document pane.

4. In the central pane (Mapping page), select the Datapacket to XML radio button.

5. Click Create and Test Transformation to generate the transformation.

6. Choose File|Save|Transformation to save the transformation file.

7. If you want to save the schema for the generated XML document, select the Schema tab of the XML document pane, right click, and choose Save Schema.

Creating a transformation between an existing XML document and an existing data packet format

To generate a transformation file that transforms between an existing XML document and an existing data packet,

1. Load the XML document into the XML document pane, as described in Creating an XML document to data packet transformation above.

2. Load the data packet into the Datapacket pane, as described in Creating a "Data packet to XML document" transformation above.

3. In the central pane, select the tab for the Mapping page. Add all nodes in the XML document pane that map to fields in the client dataset. Add all corresponding fields in the Datapacket pane that map to those nodes. Be sure that each node appears next to the corresponding field in the table.

4. Choose the Datapacket to XML or XML to Datapacket radio button to indicate the direction of the transformation you want to generate.

5. Click the Create and Test Transformation button to generate the transformation.

6. Choose File|Save|Transformation to save the transformation file.

7. If you want to generate a file for the reverse transformation, repeat steps 4-6 for the other direction.


Link not found

The topic you requested is either not available or not linked to this Help system. This can occur if you launched this Help file from a system on which Delphi has not yet been installed, or if the subject matter you are requesting is not available in your edition of Delphi.


The topic you requested is now loading. If it does not appear within a few seconds, the topic is either not available or not linked to this Help system. This can occur if you launched this Help file from a system on which Delphi has not yet been installed, or if the subject matter you are requesting is not available in your edition of Delphi.